#ifndef CUBE_H
#define CUBE_H

#include <iostream>
#include "Index.h"

#include <vtkStructuredPoints.h>
#include <vtkFloatArray.h>
#include <vtkPointData.h>

class Cube
{
private:
	double _vertex [8];
	Index _indexCube;
	int _initialVertex [3];
	public:

	//constructors
	Cube();

	Cube(double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7, int ijk[3]);

	Cube(double v0, double v1, double v2, double v3, double v4, double v5, double v6,  double v7);

	void generateCube(int ijk[3],  vtkStructuredPoints *vol_v16 , vtkFloatArray *v16_datos);

	void setVertex(int i, double densidad);

	void calculateIndex(double umbral);

	Index getIndex();

	double getVertex(int i);

	void setIndex(Index & newIndex);

	Cube rotate(int rotx, int roty, int rotz);

	Cube operator=(Cube newCube);

	int * getInitialVertex();

};


#endif

